package com.mall4j.cloud.product.service;

import com.mall4j.cloud.api.product.vo.BrandVO;
import com.mall4j.cloud.common.database.dto.PageDTO;
import com.mall4j.cloud.common.database.vo.PageVO;
import com.mall4j.cloud.product.dto.BrandDTO;
import com.mall4j.cloud.product.model.Brand;

import java.util.List;

/**
 * 品牌
 *
 * @author JCM
 * @date 2021-04-24 21:02:00
 */
public interface BrandService {

    /**
     * 分页获取品牌列表
     *
     * @param pageDTO 分页参数
     * @param brandDTO 搜索参数
     * @return 品牌列表分页数据
     */
    PageVO<BrandVO> page(PageDTO pageDTO, BrandDTO brandDTO);

    /**
     * 根据品牌id获得品牌
     *
     * @param brandId 品牌id
     * @return 品牌
     */
    BrandVO getByBrandId(Long brandId);

    /**
     * 根据分类id获取品牌列表
     *
     * @param categoryId 分类id
     * @return 品牌列表
     */
    List<BrandVO> getByCategoryId(Long categoryId);

    /**
     * 保存品牌
     *
     * @param brand 品牌
     */
    void save(Brand brand);

    /**
     * 更新品牌
     *
     * @param brand 品牌
     */
    void update(Brand brand);

    /**
     * 根据品牌id删除品牌
     *
     * @param brandId 品牌id
     */
    void deleteById(Long brandId);
}
